package com.pokermind.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * 认证响应DTO
 * 
 * 返回会话信息、权限和配额
 * 
 * @author PokerMind Team
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AuthResponse {
    
    /**
     * 会话ID
     * 用于日志追踪和会话管理
     */
    @JsonProperty("session_id")
    private String sessionId;
    
    /**
     * 客户端ID
     * 数据库中的客户端唯一标识
     */
    @JsonProperty("client_id")
    private String clientId;
    
    /**
     * 权限列表
     * 可选值: hand_management, ai_analysis, system_query
     */
    private List<String> permissions;
    
    /**
     * 配额信息
     * 包含每日限额、剩余次数等
     */
    private Map<String, Object> quota;
    
    /**
     * 认证时间戳
     */
    @JsonProperty("authenticated_at")
    private Long authenticatedAt;
}



